(The full encoding is pasted at the bottom.)

The input has 5 bits, and the output has a left metal and a right metal.
The encoding works like this:

Start with Tin-Tin. This is the all-salts output.

If the right-most bit is fire, then the right metal starts as Lead instead.
If the next bit is fire, then the left metal starts as Lead instead.

If the middle bit is fire, then we will do two projections. Normally, we project the left metal once and the right metal once. The exception is if we currently have Lead-Lead - in this case, we "hiccup" and have both projections go on the left metal. This prevents "**🜂🜂🜂" from mapping to the same output as "**🜔🜔🜔".

If the leftmost bit is fire, then the left metal gets 3 projections.
If the next bit is fire, then the right metal gets 3 projections.

And that's it!

Here's another way to put it:

If 🜔🜔🜔🜔🜔 represents 22, then the bits from left to right represent:

( +30 )( +3 )( SPECIAL )( -10 )( -1 )

Where SPECIAL is normally +11, but equal to +20 on the hiccup.

Fun fact: the unused outputs are Lead-Iron, Copper-Iron, Lead-Gold, and Copper-Gold

============
= ENCODING =
============
 0.	🜔🜔🜔🜔🜔	 => 	Tin-Tin
 1.	🜔🜔🜔🜔🜂	 => 	Tin-Lead
 2.	🜔🜔🜔🜂🜔	 => 	Lead-Tin
 3.	🜔🜔🜔🜂🜂	 => 	Lead-Lead
 4.	🜔🜔🜂🜔🜔	 => 	Iron-Iron
 5.	🜔🜔🜂🜔🜂	 => 	Iron-Tin
 6.	🜔🜔🜂🜂🜔	 => 	Tin-Iron
 7.	🜔🜔🜂🜂🜂	 => 	Iron-Lead
 8.	🜔🜂🜔🜔🜔	 => 	Tin-Silver
 9.	🜔🜂🜔🜔🜂	 => 	Tin-Copper
10.	🜔🜂🜔🜂🜔	 => 	Lead-Silver
11.	🜔🜂🜔🜂🜂	 => 	Lead-Copper
12.	🜔🜂🜂🜔🜔	 => 	Iron-Gold
13.	🜔🜂🜂🜔🜂	 => 	Iron-Silver
14.	🜔🜂🜂🜂🜔	 => 	Tin-Gold
15.	🜔🜂🜂🜂🜂	 => 	Iron-Copper
16.	🜂🜔🜔🜔🜔	 => 	Silver-Tin
17.	🜂🜔🜔🜔🜂	 => 	Silver-Lead
18.	🜂🜔🜔🜂🜔	 => 	Copper-Tin
19.	🜂🜔🜔🜂🜂	 => 	Copper-Lead
20.	🜂🜔🜂🜔🜔	 => 	Gold-Iron
21.	🜂🜔🜂🜔🜂	 => 	Gold-Tin
22.	🜂🜔🜂🜂🜔	 => 	Silver-Iron
23.	🜂🜔🜂🜂🜂	 => 	Gold-Lead
24.	🜂🜂🜔🜔🜔	 => 	Silver-Silver
25.	🜂🜂🜔🜔🜂	 => 	Silver-Copper
26.	🜂🜂🜔🜂🜔	 => 	Copper-Silver
27.	🜂🜂🜔🜂🜂	 => 	Copper-Copper
28.	🜂🜂🜂🜔🜔	 => 	Gold-Gold
29.	🜂🜂🜂🜔🜂	 => 	Gold-Silver
30.	🜂🜂🜂🜂🜔	 => 	Silver-Gold
31.	🜂🜂🜂🜂🜂	 => 	Gold-Copper